package com.rabbit.eap.system.service;

import com.rabbit.eap.framework.common.api.ApiResult;
import com.rabbit.eap.framework.common.service.BaseService;
import com.rabbit.eap.system.dto.SysDictTypeDTO;
import com.rabbit.eap.system.entity.SysDictType;
import com.rabbit.eap.system.param.SysDictTypePageParam;

/**
 * @projectName: eap
 * @packageName: com.rabbit.eap.system.service
 * @className: ISysDictTypeService
 * @author： rabbit
 * @version： 1.0
 * @since： 2020/06/06 23:34:02
 * <p>Description:
 * 字典类型表 服务类
 * </p>

 */
public interface ISysDictTypeService extends BaseService<SysDictType> {


    /**
     * @Description: 添加字典类型表
     * @methodName: saveSysDictType
     * @param sysDictTypeDTO:sysDictTypeDTO数据传输对象
     * @return: ApiResult
     * @throws Exception
     * @date: 2020/06/06 23:34:02
     * @author: rabbit
     */
    ApiResult saveSysDictType(SysDictTypeDTO sysDictTypeDTO) throws Exception;


    /**
     * @Description: 修改字典类型表
     * @methodName: modifySysDictType
     * @param  sysDictTypeDTO:sysDictTypeDTO数据传输对象
     * @return: ApiResult
     * @throws Exception
     * @date: 2020/06/06 23:34:02
     * @author: rabbit
     */
    ApiResult modifySysDictType(SysDictTypeDTO sysDictTypeDTO) throws Exception;

    /**
     * @Description: 删除字典类型表
     * @methodName: removeSysDictType
     * @param ids:ids集合
     * @return: ApiResult.result(flag)
     * @throws Exception
     * @date: 2020/06/06 23:34:02
     * @author: rabbit
     */
    ApiResult removeSysDictType(Long[] ids) throws Exception;

    /**
     * @Description: 根据Id获取字典类型表详情
     * @methodName: getSysDictTypeInfo
     * @param id: id
     * @return:  SysDictTypeVO
     * @throws Exception
     * @date: 2020/06/06 23:34:02
     * @author: rabbit
     */
    ApiResult getSysDictTypeById(Long id) throws Exception;

    /**
     * @Description: 字典类型表分页列表
     * @methodName: getSysDictTypePageList
     * @param sysDictTypePageParam
     * @return: Paging<SysDictTypeVO>
     * @throws Exception
     * @date: 2020/06/06 23:34:02
     * @author: rabbit
     */
    ApiResult getSysDictTypePageList(SysDictTypePageParam sysDictTypePageParam) throws Exception;
    /**
     * @Description: 获取所有的字典类型
     * @methodName: getAllDictType
     * @param :
     * @return: com.rabbit.eap.framework.common.api.ApiResult
     * @date: 2020/6/13 20:48
     * @author: rabbit
     *
     */
    ApiResult getAllDictType();

    /**
     * @Description: 根据字典类型查询信息
     * @methodName: getDictTypeByType
     * @param dictType: 字典类型
     * @return: com.rabbit.eap.system.entity.SysDictType
     * @date: 2020/6/13 20:51
     * @author: rabbit
     *
     */
    SysDictType getDictTypeByType(String dictType);
}
